package com.zrf.gulimall.cart.service;

import com.zrf.gulimall.cart.vo.CartItemVo;
import com.zrf.gulimall.cart.vo.CartVo;

import java.util.List;

/**
 * @Author zhanrf
 * @Date 2022/1/2 23:43
 */
public interface ShopCartService {

	/**
	 * 添加购物车
	 * @param skuId 商品id
	 * @param num 数量
	 * @return 商品信息
	 */
	void addCartItem(Long skuId, Integer num);

	/**
	 * 获取购物车指定商品信息
	 * @param skuId 商品信息
	 * @return
	 */
	CartItemVo getCartItem(Long skuId);

	/**
	 * 获取购物车信息
	 * @return
	 */
	CartVo getCart();

	/**
	 * 清空购物车
	 * @param cartKey
	 */
	void clearCartInfo(String cartKey);

	/**
	 * 改变商品数量
	 * @param skuId 商品id
	 * @param num 数量
	 */
	void changeItemCount(Long skuId, Integer num);

	/**
	 * 删除商品
	 * @param skuId 商品id
	 */
	void deleteIdCartInfo(Integer skuId);

	/**
	 * 商品是否被选中
	 * @param skuId
	 * @param checked
	 */
	void checkItem(Long skuId, Integer checked);

	/**
	 * 查出用户的所有选中的购物项
	 * @return
	 */
	List<CartItemVo> getUserCartItems();
}
